*,
*::after,
*::before {
    box-sizing: border-box;
}

:root {
    font-size: 15px;
}

body {
    margin: 0;
    --color-text: #858fe7;
    --color-bg: #0e0e0e;
    --color-link: #fff;
    --color-link-hover: #858fe7;
    color: var(--color-text);
    background-color: var(--color-bg);
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif;
    font-weight: 500;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    text-decoration: none;
    color: var(--color-link);
    outline: none;
}

a:hover {
    color: var(--color-link-hover);
    outline: none;
}

a:focus {
    outline: none;
    background: lightgrey;
}

a:focus:not(:focus-visible) {
    background: transparent;
}

a:focus-visible {
    outline: 2px solid red;
    background: transparent;
}

.frame {
    padding: 1.5rem 2rem 10vh;
    text-align: center;
    position: relative;
}

.frame__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 500;
}

.frame__links {
    margin: 0.5rem 0 2rem;
}

.frame__links a:not(:last-child) {
    margin-right: 1rem;
}

.content {
    flex: 1;
    display: grid;
    place-items: center;
}

.image {
    margin: 0 auto;
    display: grid;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    width: min(70vmin, 450px);
    height: min(70vmin, 450px);
    border-radius: 50%;
    background-size: cover;
    background-position: 50% 50%;
}

.image__element {
    transform-origin: inherit;
    position: relative;
    grid-area: 1 / 1 / 2 / 2;
    width: 100%;
    height: 100%;
    will-change: transform;
    border-radius: inherit;
    background-size: inherit;
    background-position: inherit;
}

@media screen and (min-width: 53em) {
    main {
        height: 100vh;
        display: flex;
        flex-direction: column;
    }

    .frame {
        padding: 1.5rem 2rem 0;
        display: grid;
        grid-template-columns: auto 1fr auto;
        grid-template-areas: 'title links sponsor';
        grid-gap: 3vw;
        justify-content: space-between;
        text-align: left;
    }

    .frame__links {
        margin: 0;
    }
}